home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 4: Demo 1 / almathera_demo1.bin / sourcecode / dexion / cursor cycle.s < prev    next >
Text File  |  1995-03-17  |  1KB  |  80 lines

  1. ; cusor cycle IRQ
  2. ;
  3. timer=0
  4. gfxbase=2
  5. fac=6
  6. start:
  7. movem.l d0-d7/a0-a6,-(sp)
  8. move.l $4,a6
  9. move.l #cend-L3int,d0
  10. move.l #%10000000000000001,d1
  11. jsr -198(a6)
  12. move.l d0,d6
  13. beq error
  14. lea gfxname,a1
  15. jsr -408(a6)
  16. move.l d0,dat+2
  17. move.l $6c,oldint ;old IRQ
  18.  
  19.  
  20.  
  21. lea L3int,a1
  22. move.l d6,a0
  23. move.l #[[cend-L3int]/2]-2,d0
  24. clop:
  25. move.w (a1)+,(a0)+
  26. dbra d0,clop
  27. move.w #$0020,$dff09a
  28. move.w #$0020,$dff09c
  29. move.l d6,$6c ; set new IRQ
  30. move.w #$8020,$dff09a
  31. move.l dat+2,a1
  32. move.l 4,a6
  33. jsr -414(a6)
  34. error: 
  35. movem.l (sp)+,d0-d7/a0-a6
  36. clr.l d0
  37. rts
  38.  
  39. gfxname: dc.b "graphics.library",0
  40. even
  41.  
  42. L3int:
  43. move.l SR,-(sp)
  44. btst #5,$dff01f
  45. bne.s vblank
  46. bra endhandler
  47.  
  48. vblank:
  49. movem.l d0-d7/a0-a6,-(sp)
  50. lea dat(pc),a5
  51.  subq.w #1,timer(a5)
  52. bpl.s out
  53. move.w #$2,timer(a5)
  54. move.l gfxbase(a5),a0
  55. adda.l #$32,a0
  56. move.l (a0),a0
  57. lea tabel(pc),a1
  58. move.w fac(a5),d0
  59. lsl.w #1,d0
  60. move.w 0(a1,d0.w),18(a0)
  61. addq.w #1,fac(a5)
  62. cmp.w #24,fac(a5)
  63. blo.s out
  64. clr.w fac(a5)
  65. out:
  66. movem.l (sp)+,d0-d7/a0-a6
  67. endhandler:
  68. move (sp)+,SR
  69. dc.w $4ef9
  70. oldint:
  71. dc.l $0
  72. dat:
  73. dc.w 0,0,0,0
  74. tabel:
  75. dc.w $333,$444,$555,$666,$777,$888,$999,$aaa
  76. dc.w $bbb,$ccc,$ddd,$eee,$fff,$eee,$ddd,$ccc
  77. dc.w $bbb,$aaa,$999,$888,$777,$666,$555,$444
  78. even
  79. cend: equ *
  80.